/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bean;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import java.util.List;
import com.modelo.*;
import com.dao.*;
import java.io.Serializable;
import java.util.Date;
import javax.faces.event.ActionListener;
import java.util.Calendar;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
 *
 * @author Jonas
 */
@ManagedBean
@RequestScoped
public class FrmFuncionarioBean implements Serializable {

    /**
     * variáveis de componentes de tela
     */
    boolean Edicao = false;

    public boolean isEdicao() {
        return Edicao;
    }

    public void setbEdicao(boolean Edicao) {
        this.Edicao = Edicao;
    }
    /**
     * **************************************
     */
    private List<Funcionario> lstFuncionarios = null;
    private FuncionarioDAO funcDAO = new FuncionarioDAO();
    private Funcionario selectedFuncionario;
    private String Matricula;
    private String Nome;
    private String Email;
    private char Sexo;
    private Date dtNascimento;
    private String Cpf;
    private String RG;
    private String Cargo;
    private Date dtCadatro;
    private String Logradouro;
    private String Número;
    private String Complemento;
    private String Bairro;
    private String Cidade;
    private String Estado;
    private String Pais;
    private String Cep;
    private String DDDfixo;
    private String TelefoneResidencial;
    private String DDDCelular;
    private String TelefoneCelular;

    public List<Funcionario> getLstFuncionarios() {
        try {
            this.lstFuncionarios = funcDAO.getFuncionarios();
            return lstFuncionarios;
        } catch (ExceptionInInitializerError e) {
            throw e;
        }

    }

    public void setLstFuncionarios(List<Funcionario> lstFuncionarios) {
        this.lstFuncionarios = lstFuncionarios;
    }

    public String getMatricula() {
        return Matricula;
    }

    public void setMatricula(String Matricula) {
        this.Matricula = Matricula;
    }

    public String getNome() {
        return Nome;
    }

    public void setNome(String Nome) {
        this.Nome = Nome;
    }

    public String getEmail() {
        return Email;
    }

    public void setEmail(String Email) {
        this.Email = Email;
    }

    public char getSexo() {
        return Sexo;
    }

    public void setSexo(char Sexo) {
        this.Sexo = Sexo;
    }

    public Date getDtNascimento() {
        return dtNascimento;
    }

    public void setDtNascimento(Date dtNascimento) {
        this.dtNascimento = dtNascimento;
    }

    public String getCpf() {
        return Cpf;
    }

    public void setCpf(String Cpf) {
        this.Cpf = Cpf;
    }

    public String getRG() {
        return RG;
    }

    public void setRG(String RG) {
        this.RG = RG;
    }

    public String getCargo() {
        return Cargo;
    }

    public void setCargo(String Cargo) {
        this.Cargo = Cargo;
    }

    public Date getDtCadatro() {
        return dtCadatro;
    }

    public void setDtCadatro(Date dtCadatro) {
        this.dtCadatro = dtCadatro;
    }

    public String getLogradouro() {
        return Logradouro;
    }

    public void setLogradouro(String Logradouro) {
        this.Logradouro = Logradouro;
    }

    public String getNúmero() {
        return Número;
    }

    public void setNúmero(String Número) {
        this.Número = Número;
    }

    public String getComplemento() {
        return Complemento;
    }

    public void setComplemento(String Complemento) {
        this.Complemento = Complemento;
    }

    public String getBairro() {
        return Bairro;
    }

    public void setBairro(String Bairro) {
        this.Bairro = Bairro;
    }

    public String getCidade() {
        return Cidade;
    }

    public void setCidade(String Cidade) {
        this.Cidade = Cidade;
    }

    public String getEstado() {
        return Estado;
    }

    public void setEstado(String Estado) {
        this.Estado = Estado;
    }

    public String getPais() {
        return Pais;
    }

    public void setPais(String Pais) {
        this.Pais = Pais;
    }

    public String getCep() {
        return Cep;
    }

    public void setCep(String Cep) {
        this.Cep = Cep;
    }

    public String getDDDfixo() {
        return DDDfixo;
    }

    public void setDDDfixo(String DDDfixo) {
        this.DDDfixo = DDDfixo;
    }

    public String getTelefoneResidencial() {
        return TelefoneResidencial;
    }

    public void setTelefoneResidencial(String TelefoneResidencial) {
        this.TelefoneResidencial = TelefoneResidencial;
    }

    public String getDDDCelular() {
        return DDDCelular;
    }

    public void setDDDCelular(String DDDCelular) {
        this.DDDCelular = DDDCelular;
    }

    public String getTelefoneCelular() {
        return TelefoneCelular;
    }

    public void setTelefoneCelular(String TelefoneCelular) {
        this.TelefoneCelular = TelefoneCelular;
    }

    public String HabilitarEdicao() {
        this.Edicao = true;
        return "";
    }

    public String DesabilitarEdicao() {
        this.Edicao = false;
        return "";
    }

    public void SaveFuncionario(ActionListener actionlistener) throws Exception {
        FacesContext context = FacesContext.getCurrentInstance();
        try {
            Funcionario func = new Funcionario();
            func.setMatricula(this.Matricula);
            func.setNome(this.Nome);
            func.setEmail(Email);
            func.setSexo(Sexo);
            func.setDataNascimento(dtNascimento);
            func.setCpf(Cpf);
            func.setRg(RG);
            func.setCargo(Cargo);
            Calendar cal = Calendar.getInstance();
            func.setDataCadastro(cal.getTime());


            funcDAO.addFuncionario(func);

            if (func.getId() > 0) {
                context.addMessage(null, new FacesMessage("Sucesso", "O funcionario foi salvo com sucesso."));
            } else {
                context.addMessage(null, new FacesMessage("Atenção", "O funcionario não foi salvo com sucesso."));
            }

        } catch (Exception e) {
            throw e;
        }
    }

    /**
     * Creates a new instance of FrmFuncionarioBean
     */
    public FrmFuncionarioBean() {
//        this.lstFuncionarios = lstFuncionarios();
    }
}
